package com.mc.lp.database.service;

import java.util.List;

import com.mc.lp.database.entity.type.RecordType;
import com.mc.lp.shared.vo.AttachmentVO;
import com.mc.lp.shared.vo.FileVo;
import com.mc.lp.shared.vo.SearchCriteriaVO;
import com.mc.lp.shared.vo.ServiceResponse;
import com.mc.lp.shared.vo.ValueObjectList;

/**
 * service responsible to add,delete,view attachments
 * @author deepak
 *
 */
public interface IAttachmentService{
	
	
	public abstract ValueObjectList getAttachmentsWithoutData(SearchCriteriaVO searchCriteria);
	public abstract FileVo downloadAttachmentWithData(Long Id);
	public abstract ServiceResponse<FileVo> deleteAttachment(Long Id);
	public abstract ServiceResponse<FileVo> saveAttachment(AttachmentVO attachmentVo);
	
	public FileVo getAttachmentByRecordTypeAndIdentifiers(Long entityId, Long recordId, RecordType recordType);
	
	public List<AttachmentVO> getAttachmentsByGrade(Long entityId, Integer grade, RecordType recordType, boolean isDataRequired);
}
